<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<title>Catharsis.NET.Commons: Catharsis.Commons.ObjectExtensions Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">Catharsis.NET.Commons
   &#160;<span id="projectnumber">2.8</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.7 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('class_catharsis_1_1_commons_1_1_object_extensions.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Properties</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="class_catharsis_1_1_commons_1_1_object_extensions-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">Catharsis.Commons.ObjectExtensions Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p> 
 <a href="class_catharsis_1_1_commons_1_1_object_extensions.html#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:ae8a98871a026491a8914f5a9ffed99fd"><td class="memItemLeft" align="right" valign="top">static T&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_catharsis_1_1_commons_1_1_object_extensions.html#ae8a98871a026491a8914f5a9ffed99fd">As&lt; T &gt;</a> (this object self)</td></tr>
<tr class="separator:ae8a98871a026491a8914f5a9ffed99fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a829f8a7f851db4b488cdb4a763c68400"><td class="memItemLeft" align="right" valign="top">static OUTPUT&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_catharsis_1_1_commons_1_1_object_extensions.html#a829f8a7f851db4b488cdb4a763c68400">Do&lt; SUBJECT, OUTPUT &gt;</a> (this SUBJECT self, Func&lt; SUBJECT, OUTPUT &gt; action)</td></tr>
<tr class="separator:a829f8a7f851db4b488cdb4a763c68400"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa535cbca257ef3f3843eb0bb6a18e126"><td class="memItemLeft" align="right" valign="top">static T&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_catharsis_1_1_commons_1_1_object_extensions.html#aa535cbca257ef3f3843eb0bb6a18e126">Do&lt; T &gt;</a> (this T self, Action&lt; T &gt; action)</td></tr>
<tr class="separator:aa535cbca257ef3f3843eb0bb6a18e126"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abeb8510f60e1ef340fbc8dd040ee52c3"><td class="memItemLeft" align="right" valign="top">static string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_catharsis_1_1_commons_1_1_object_extensions.html#abeb8510f60e1ef340fbc8dd040ee52c3">Dump</a> (this object self)</td></tr>
<tr class="separator:abeb8510f60e1ef340fbc8dd040ee52c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a22d20f42d49b33c9247abc087a75404d"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_catharsis_1_1_commons_1_1_object_extensions.html#a22d20f42d49b33c9247abc087a75404d">Equality&lt; T &gt;</a> (this T self, T other, params string[] propertiesOrFields)</td></tr>
<tr class="separator:a22d20f42d49b33c9247abc087a75404d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a918626f1528ea0659e2a7185dd97f94c"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_catharsis_1_1_commons_1_1_object_extensions.html#a918626f1528ea0659e2a7185dd97f94c">Equality&lt; T &gt;</a> (this T self, T other, params Expression&lt; Func&lt; T, object &gt;&gt;[] properties)</td></tr>
<tr class="separator:a918626f1528ea0659e2a7185dd97f94c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad8601b1b1a912c4d56256ebb827d728f"><td class="memItemLeft" align="right" valign="top">static object&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_catharsis_1_1_commons_1_1_object_extensions.html#ad8601b1b1a912c4d56256ebb827d728f">Field</a> (this object self, string name)</td></tr>
<tr class="separator:ad8601b1b1a912c4d56256ebb827d728f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a423bd8a83dec8b9304a959f9b58930db"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_catharsis_1_1_commons_1_1_object_extensions.html#a423bd8a83dec8b9304a959f9b58930db">GetHashCode&lt; T &gt;</a> (this T self, IEnumerable&lt; string &gt; properties)</td></tr>
<tr class="separator:a423bd8a83dec8b9304a959f9b58930db"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a16a24be0096fb40652d20987dd46b8e3"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_catharsis_1_1_commons_1_1_object_extensions.html#a16a24be0096fb40652d20987dd46b8e3">GetHashCode&lt; T &gt;</a> (this T self, params Expression&lt; Func&lt; T, object &gt;&gt;[] properties)</td></tr>
<tr class="separator:a16a24be0096fb40652d20987dd46b8e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ade1bccfdf80f8b8a018baabf8cd0d6d2"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_catharsis_1_1_commons_1_1_object_extensions.html#ade1bccfdf80f8b8a018baabf8cd0d6d2">Is&lt; T &gt;</a> (this object self)</td></tr>
<tr class="separator:ade1bccfdf80f8b8a018baabf8cd0d6d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0243c67ae05e946595c8a261c726a2aa"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_catharsis_1_1_commons_1_1_object_extensions.html#a0243c67ae05e946595c8a261c726a2aa">IsFalse</a> (this object self)</td></tr>
<tr class="separator:a0243c67ae05e946595c8a261c726a2aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a63c88268c7cc394fba00bdb019d56ca9"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_catharsis_1_1_commons_1_1_object_extensions.html#a63c88268c7cc394fba00bdb019d56ca9">IsNumeric</a> (this object self)</td></tr>
<tr class="separator:a63c88268c7cc394fba00bdb019d56ca9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a488ce98e1bf7206cea7eaa28274627a6"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_catharsis_1_1_commons_1_1_object_extensions.html#a488ce98e1bf7206cea7eaa28274627a6">IsTrue</a> (this object self)</td></tr>
<tr class="separator:a488ce98e1bf7206cea7eaa28274627a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8e62848c7e7a242bcb5b9edd9ba36985"><td class="memItemLeft" align="right" valign="top">static MEMBER&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_catharsis_1_1_commons_1_1_object_extensions.html#a8e62848c7e7a242bcb5b9edd9ba36985">Member&lt; T, MEMBER &gt;</a> (this T self, Expression&lt; Func&lt; T, MEMBER &gt;&gt; expression)</td></tr>
<tr class="separator:a8e62848c7e7a242bcb5b9edd9ba36985"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a10c23bb3f13497c103536233d6c982d7"><td class="memItemLeft" align="right" valign="top">static object&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_catharsis_1_1_commons_1_1_object_extensions.html#a10c23bb3f13497c103536233d6c982d7">Method</a> (this object self, string name, params object[] parameters)</td></tr>
<tr class="separator:a10c23bb3f13497c103536233d6c982d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5baf407f2090ba451dc1bda0f1e561e5"><td class="memItemLeft" align="right" valign="top">static T&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_catharsis_1_1_commons_1_1_object_extensions.html#a5baf407f2090ba451dc1bda0f1e561e5">Properties&lt; T &gt;</a> (this T self, IDictionary&lt; string, object &gt; properties)</td></tr>
<tr class="separator:a5baf407f2090ba451dc1bda0f1e561e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0737c4ea29a488b6c0a9e629110876ed"><td class="memItemLeft" align="right" valign="top">static T&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_catharsis_1_1_commons_1_1_object_extensions.html#a0737c4ea29a488b6c0a9e629110876ed">Properties&lt; T &gt;</a> (this T self, object properties)</td></tr>
<tr class="separator:a0737c4ea29a488b6c0a9e629110876ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af4a4ff84e1d58d21bbc2caa2517bc4bf"><td class="memItemLeft" align="right" valign="top">static IDictionary&lt; string, <br class="typebreak" />
object &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_catharsis_1_1_commons_1_1_object_extensions.html#af4a4ff84e1d58d21bbc2caa2517bc4bf">PropertiesMap</a> (this object self)</td></tr>
<tr class="separator:af4a4ff84e1d58d21bbc2caa2517bc4bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a68d696db7de7dd18f57d94c0a6bb7aaa"><td class="memItemLeft" align="right" valign="top">static object&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_catharsis_1_1_commons_1_1_object_extensions.html#a68d696db7de7dd18f57d94c0a6bb7aaa">Property</a> (this object self, string name)</td></tr>
<tr class="separator:a68d696db7de7dd18f57d94c0a6bb7aaa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a22cd0af53a4f615f074bba54c7cd352f"><td class="memItemLeft" align="right" valign="top">static T&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_catharsis_1_1_commons_1_1_object_extensions.html#a22cd0af53a4f615f074bba54c7cd352f">Property&lt; T &gt;</a> (this T self, string property, object value)</td></tr>
<tr class="separator:a22cd0af53a4f615f074bba54c7cd352f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad225f94387874cd75ed37d6b3351b814"><td class="memItemLeft" align="right" valign="top">static T&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_catharsis_1_1_commons_1_1_object_extensions.html#ad225f94387874cd75ed37d6b3351b814">To&lt; T &gt;</a> (this object self)</td></tr>
<tr class="separator:ad225f94387874cd75ed37d6b3351b814"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae08d7a673e8c8fb445329fb144b936e4"><td class="memItemLeft" align="right" valign="top">static string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_catharsis_1_1_commons_1_1_object_extensions.html#ae08d7a673e8c8fb445329fb144b936e4">ToString</a> (this object self, IEnumerable&lt; string &gt; properties)</td></tr>
<tr class="separator:ae08d7a673e8c8fb445329fb144b936e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af84a8586d22340e296f0bf2a8809434d"><td class="memItemLeft" align="right" valign="top">static string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_catharsis_1_1_commons_1_1_object_extensions.html#af84a8586d22340e296f0bf2a8809434d">ToString&lt; T &gt;</a> (this T self, params Expression&lt; Func&lt; T, object &gt;&gt;[] properties)</td></tr>
<tr class="separator:af84a8586d22340e296f0bf2a8809434d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2669cd77169b3eca209a4402651b6701"><td class="memItemLeft" align="right" valign="top">static string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_catharsis_1_1_commons_1_1_object_extensions.html#a2669cd77169b3eca209a4402651b6701">ToStringInvariant</a> (this object self)</td></tr>
<tr class="separator:a2669cd77169b3eca209a4402651b6701"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Set of extensions methods for class object.</p>
<dl class="section see"><dt>See also</dt><dd>object</dd></dl>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="ae8a98871a026491a8914f5a9ffed99fd"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static T Catharsis.Commons.ObjectExtensions.As&lt; T &gt; </td>
          <td>(</td>
          <td class="paramtype">this object&#160;</td>
          <td class="paramname"><em>self</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Tries to convert given object to specified type and returns a <code>null</code> reference on failure.</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">T</td><td>Type to convert object to.</td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>Object to convert.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Object, converted to the specified type, or a <code>null</code> reference if the conversion cannot be performed.</dd></dl>
<p>If specified object instance is a <code>null</code> reference, a <code>null</code> reference will be returned as a result.</p>
<dl class="section see"><dt>See also</dt><dd>To{T}</dd></dl>

</div>
</div>
<a class="anchor" id="a829f8a7f851db4b488cdb4a763c68400"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static OUTPUT Catharsis.Commons.ObjectExtensions.Do&lt; SUBJECT, OUTPUT &gt; </td>
          <td>(</td>
          <td class="paramtype">this SUBJECT&#160;</td>
          <td class="paramname"><em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Func&lt; SUBJECT, OUTPUT &gt;&#160;</td>
          <td class="paramname"><em>action</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Calls specified delegate action in a context of target object and returns the result of the call. If target object implements IDisposable interface, invokes delegate method inside a <code>using</code> code block.</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">SUBJECT</td><td>Type of target object.</td></tr>
    <tr><td class="paramname">OUTPUT</td><td>Type of output result for the <em>action</em>  delegate.</td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>Target object, in context of which <em>action</em>  method is to be called.</td></tr>
    <tr><td class="paramname">action</td><td>Delegate that represents a method to be called.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Value, returned by calling of <em>action</em>  delegate's method in a context of <em>self</em>  object.</dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">ArgumentNullException</td><td>If either <em>self</em>  or <em>action</em>  is a <code>null</code> reference.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd>Do{T}</dd></dl>

</div>
</div>
<a class="anchor" id="aa535cbca257ef3f3843eb0bb6a18e126"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static T Catharsis.Commons.ObjectExtensions.Do&lt; T &gt; </td>
          <td>(</td>
          <td class="paramtype">this T&#160;</td>
          <td class="paramname"><em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Action&lt; T &gt;&#160;</td>
          <td class="paramname"><em>action</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Calls specified delegate action in a context of target object. If target object implements IDisposable interface, invokes delegate method inside a <code>using</code> code block.</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">T</td><td>Type of target object.</td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>Target object, in context of which <em>action</em>  method is to be called.</td></tr>
    <tr><td class="paramname">action</td><td>Delegate that represents a method to be called.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Back reference to the current target object.</dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">ArgumentNullException</td><td>If either <em>self</em>  or <em>action</em>  is a <code>null</code> reference.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd>Do{SUBJECT,OUTPUT}</dd></dl>
<p>If <em>self</em>  does not implement IDisposable interface, this method simply calls <em>action</em> 's method.</p>

</div>
</div>
<a class="anchor" id="abeb8510f60e1ef340fbc8dd040ee52c3"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static string Catharsis.Commons.ObjectExtensions.Dump </td>
          <td>(</td>
          <td class="paramtype">this object&#160;</td>
          <td class="paramname"><em>self</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Returns state (names and values of all public properties) for the given object.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>Target object whose public properties names and values are to be returned.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>State of <em>self</em>  as a string.</dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">ArgumentNullException</td><td>If <em>self</em>  is a <code>null</code> reference.</td></tr>
  </table>
  </dd>
</dl>
<p>Property name is separated from property value by a colon, each name-value pairs are separated by comma characters.</p>
<dl class="section see"><dt>See also</dt><dd>object.ToString()</dd></dl>

</div>
</div>
<a class="anchor" id="a22d20f42d49b33c9247abc087a75404d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static bool Catharsis.Commons.ObjectExtensions.Equality&lt; T &gt; </td>
          <td>(</td>
          <td class="paramtype">this T&#160;</td>
          <td class="paramname"><em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">T&#160;</td>
          <td class="paramname"><em>other</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">params string[]&#160;</td>
          <td class="paramname"><em>propertiesOrFields</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Determines whether specified objects are considered equal by comparing values of the given set of properties/fields on each of them.</p>
<p>The following algorithm is used in equality determination: </p><ul>
<li>
If both <em>self</em>  and <em>other</em>  are <code>null</code> references, method returns <code>true</code>. </li>
<li>
If one of compared objects is <code>null</code> and another is not, method returns <code>false</code>. </li>
<li>
If both objects references are equal (they represent the same object instance), method returns <code>true</code>. </li>
<li>
If <em>propertiesOrFields</em>  set is either a <code>null</code> reference or contains zero elements, <a class="el" href="class_catharsis_1_1_commons_1_1_equals_and_hash_code_attribute.html">EqualsAndHashCodeAttribute</a> attribute is used for equality comparison. </li>
<li>
If <em>T</em>  type does not contain any properties/fields in <em>propertiesOrFields</em>  set, object.Equals(object, object) method is used for equality comparison. </li>
<li>
If <em>T</em>  type contains any of the properties/fields in <em>propertiesOrFields</em>  set, their values are used for equality comparison according to object.Equals(object) method of both <em>self</em>  and <em>other</em>  instances. </li>
</ul>
<dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">T</td><td>Type of objects to compare.</td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>Current object to compare with the second.</td></tr>
    <tr><td class="paramname">other</td><td>Second object to compare with the current one.</td></tr>
    <tr><td class="paramname">propertiesOrFields</td><td>Set of properties/fields whose values are used in equality comparison.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if <em>self</em>  and <em>other</em>  are considered equal, <code>false</code> otherwise.</dd></dl>
<dl class="section see"><dt>See also</dt><dd>object.Equals(object), Equality{T}(T, T, Expression{Func{T, object}}[])</dd></dl>

</div>
</div>
<a class="anchor" id="a918626f1528ea0659e2a7185dd97f94c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static bool Catharsis.Commons.ObjectExtensions.Equality&lt; T &gt; </td>
          <td>(</td>
          <td class="paramtype">this T&#160;</td>
          <td class="paramname"><em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">T&#160;</td>
          <td class="paramname"><em>other</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">params Expression&lt; Func&lt; T, object &gt;&gt;[]&#160;</td>
          <td class="paramname"><em>properties</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Determines whether specified objects are considered equal by comparing values of the given set of properties, represented as expression trees, on each of them.</p>
<p>The following algorithm is used in equality determination: </p><ul>
<li>
If both <em>self</em>  and <em>other</em>  are <code>null</code> references, method returns <code>true</code>. </li>
<li>
If one of compared objects is <code>null</code> and another is not, method returns <code>false</code>. </li>
<li>
If both objects references are equal (they represent the same object instance), method returns <code>true</code>. </li>
<li>
If <em>properties</em>  set is either a <code>null</code> reference or contains zero elements, <a class="el" href="class_catharsis_1_1_commons_1_1_equals_and_hash_code_attribute.html">EqualsAndHashCodeAttribute</a> attribute is used for equality comparison. </li>
<li>
If <em>T</em>  type does not contain any properties in <em>properties</em>  set, object.Equals(object, object) method is used for equality comparison. </li>
<li>
If <em>T</em>  type contains any of the properties in <em>properties</em>  set, their values are used for equality comparison according to object.Equals(object) method of both <em>self</em>  and <em>other</em>  instances. </li>
</ul>
<dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">T</td><td>Type of objects to compare.</td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>Current object to compare with the second.</td></tr>
    <tr><td class="paramname">other</td><td>Second object to compare with the current one.</td></tr>
    <tr><td class="paramname">properties</td><td>Set of properties in a form of expression trees, whose values are used in equality comparison.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if <em>self</em>  and <em>other</em>  are considered equal, <code>false</code> otherwise.</dd></dl>
<dl class="section see"><dt>See also</dt><dd>object.Equals(object), Equality{T}(T, T, string[])</dd></dl>

</div>
</div>
<a class="anchor" id="ad8601b1b1a912c4d56256ebb827d728f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static object Catharsis.Commons.ObjectExtensions.Field </td>
          <td>(</td>
          <td class="paramtype">this object&#160;</td>
          <td class="paramname"><em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">string&#160;</td>
          <td class="paramname"><em>name</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Returns the value of object's field with a specified name.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>Object whose field's value is to be returned.</td></tr>
    <tr><td class="paramname">name</td><td>Name of field of <em>self</em> 's type.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Value of <em>self</em> 's field with a given <em>name</em> .</dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">ArgumentNullException</td><td>If either <em>self</em>  or <em>name</em>  is a <code>null</code> reference.</td></tr>
    <tr><td class="paramname">ArgumentException</td><td>If <em>name</em>  is string.Empty string.</td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a423bd8a83dec8b9304a959f9b58930db"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int Catharsis.Commons.ObjectExtensions.GetHashCode&lt; T &gt; </td>
          <td>(</td>
          <td class="paramtype">this T&#160;</td>
          <td class="paramname"><em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">IEnumerable&lt; string &gt;&#160;</td>
          <td class="paramname"><em>properties</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Returns a hash value of a given object, using specified set of properties in its calculation.</p>
<p>The following algorithm is used in hash code calculation: </p><ul>
<li>
If <em>self</em>  is a <code>null</code> reference, methods returns 0. </li>
<li>
If <em>properties</em>  set is either a <code>null</code> reference or contains zero elements, <a class="el" href="class_catharsis_1_1_commons_1_1_equals_and_hash_code_attribute.html">EqualsAndHashCodeAttribute</a> attribute is used for hash code calculation. </li>
<li>
If <em>T</em>  type contains any of the properties in <em>properties</em>  set, their values are used for hash code calculation according to object.GetHashCode() method. The sum of <em>self</em> 's properties hash codes is returned in that case. </li>
</ul>
<dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">T</td><td>Type of object.</td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>Target object, whose hash code is to be returned.</td></tr>
    <tr><td class="paramname">properties</td><td>Collection of properties names, whose values are to be used in hash code's calculation.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Hash code for <em>self</em> .</dd></dl>
<dl class="section see"><dt>See also</dt><dd>object.GetHashCode(), GetHashCode{T}(T, Expression{Func{T, object}}[])</dd></dl>

</div>
</div>
<a class="anchor" id="a16a24be0096fb40652d20987dd46b8e3"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int Catharsis.Commons.ObjectExtensions.GetHashCode&lt; T &gt; </td>
          <td>(</td>
          <td class="paramtype">this T&#160;</td>
          <td class="paramname"><em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">params Expression&lt; Func&lt; T, object &gt;&gt;[]&#160;</td>
          <td class="paramname"><em>properties</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Returns a hash value of a given object, using specified set of properties, represented as experssion trees, in its calculation.</p>
<p>The following algorithm is used in hash code calculation: </p><ul>
<li>
If <em>self</em>  is a <code>null</code> reference, methods returns 0. </li>
<li>
If <em>properties</em>  set is either a <code>null</code> reference or contains zero elements, <a class="el" href="class_catharsis_1_1_commons_1_1_equals_and_hash_code_attribute.html">EqualsAndHashCodeAttribute</a> attribute is used for hash code calculation. </li>
<li>
If <em>T</em>  type contains any of the properties in <em>properties</em>  set, their values are used for hash code calculation according to object.GetHashCode() method. The sum of <em>self</em> 's properties hash codes is returned in that case. </li>
</ul>
<dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">T</td><td>Type of object.</td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>Target object, whose hash code is to be returned.</td></tr>
    <tr><td class="paramname">properties</td><td>Collection of properties in a form of expression trees, whose values are to be used in hash code's calculation.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Hash code for <em>self</em> .</dd></dl>
<dl class="section see"><dt>See also</dt><dd>object.GetHashCode(), GetHashCode{T}(T, IEnumerable{string})</dd></dl>

</div>
</div>
<a class="anchor" id="ade1bccfdf80f8b8a018baabf8cd0d6d2"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static bool Catharsis.Commons.ObjectExtensions.Is&lt; T &gt; </td>
          <td>(</td>
          <td class="paramtype">this object&#160;</td>
          <td class="paramname"><em>self</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Determines if the object is compatible with the given type, as specified by the <code>is</code> operator.</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">T</td><td>Type of object.</td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>Object whose type compatibility with <em>T</em>  is to be determined.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if <em>self</em>  is type-compatible with <em>T</em> , <code>false</code> if not.</dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">ArgumentNullException</td><td>If <em>self</em>  is a <code>null</code> reference.</td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a0243c67ae05e946595c8a261c726a2aa"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static bool Catharsis.Commons.ObjectExtensions.IsFalse </td>
          <td>(</td>
          <td class="paramtype">this object&#160;</td>
          <td class="paramname"><em>self</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Determines whether the object can be considered as a non-strict <code>false</code> boolean value.</p>
<p>The following algorithm is used to determine whether an object can be considered non-strictly as a <code>false</code> value: </p><ul>
<li>
It represents a <code>null</code> reference. </li>
<li>
It represents a <code>false</code> value of <code>bool</code> type. </li>
<li>
It represents a non-positive value of numeric type. </li>
<li>
It represents an string.Empty string. </li>
<li>
It represents an empty IEnumerable collection. </li>
<li>
It represents a zero-length FileInfo object. </li>
<li>
It represents a regular expression Match object without matches. </li>
</ul>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>Target object for non-strict boolean evaluation.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if <em>self</em>  can be considered as a non-strict <code>false</code> other, <code>false</code> otherwise.</dd></dl>
<dl class="section see"><dt>See also</dt><dd>IsTrue(object)</dd></dl>

</div>
</div>
<a class="anchor" id="a63c88268c7cc394fba00bdb019d56ca9"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static bool Catharsis.Commons.ObjectExtensions.IsNumeric </td>
          <td>(</td>
          <td class="paramtype">this object&#160;</td>
          <td class="paramname"><em>self</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Determines whether specified object represents a primitive numeric value type.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>Object to be evaluated.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if <em>self</em>  represents any numeric ValueType (<code>byte</code>, <code>decimal</code>, <code>double</code>, <code>integer</code>, <code>single</code>), <code>false</code> otherwise.</dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">ArgumentNullException</td><td>If <em>self</em>  is a <code>null</code> reference.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd>Type.GetTypeCode(Type)</dd></dl>

</div>
</div>
<a class="anchor" id="a488ce98e1bf7206cea7eaa28274627a6"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static bool Catharsis.Commons.ObjectExtensions.IsTrue </td>
          <td>(</td>
          <td class="paramtype">this object&#160;</td>
          <td class="paramname"><em>self</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Determines whether the object can be considered as a non-strict <code>true</code> boolean value.</p>
<p>The following algorithm is used to determine whether an object can be considered non-strictly as a <code>true</code> value: </p><ul>
<li>
It represents a <code>true</code> value of <code>bool</code> type. </li>
<li>
It represents a positive value of numeric type. </li>
<li>
It represents a non-empty string. </li>
<li>
It represents a non-empty IEnumerable collection. </li>
<li>
It represents a FileInfo object which does not represent an empty file. </li>
<li>
It represents a Stream object which is not empty. </li>
<li>
It represents a regular expression Match object with at least one match. </li>
<li>
It represents any other type of object which is not a <code>null</code> reference. </li>
</ul>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>Target object for non-strict boolean evaluation.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if <em>self</em>  can be considered as a non-strict <code>true</code> other, <code>false</code> otherwise.</dd></dl>
<dl class="section see"><dt>See also</dt><dd>IsFalse(object)</dd></dl>

</div>
</div>
<a class="anchor" id="a8e62848c7e7a242bcb5b9edd9ba36985"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static MEMBER Catharsis.Commons.ObjectExtensions.Member&lt; T, MEMBER &gt; </td>
          <td>(</td>
          <td class="paramtype">this T&#160;</td>
          <td class="paramname"><em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Expression&lt; Func&lt; T, MEMBER &gt;&gt;&#160;</td>
          <td class="paramname"><em>expression</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Returns the value of a member on a target object, using expression tree to specify type's member.</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">T</td><td>Type of target object.</td></tr>
    <tr><td class="paramname">MEMBER</td><td>Type of <em>self</em> 's member.</td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>Target object, whose member's value is to be returned.</td></tr>
    <tr><td class="paramname">expression</td><td>Lambda expression that represents a member of <em>T</em>  type, whose value for <em>self</em>  instance is to be returned. Generally it should represents either a public property/field or no-arguments method.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Value of member of <em>T</em>  type on a <em>self</em>  instance.</dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">ArgumentNullException</td><td>If either <em>self</em>  or <em>expression</em>  is a <code>null</code> reference.</td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a10c23bb3f13497c103536233d6c982d7"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static object Catharsis.Commons.ObjectExtensions.Method </td>
          <td>(</td>
          <td class="paramtype">this object&#160;</td>
          <td class="paramname"><em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">string&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">params object[]&#160;</td>
          <td class="paramname"><em>parameters</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Calls/invokes instance method on a target object, passing specified parameters.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>The object on which to invoke the method.</td></tr>
    <tr><td class="paramname">name</td><td>Name of the method to be invoked.</td></tr>
    <tr><td class="paramname">parameters</td><td>Optional set of parameters to be passed to invoked method, if it requires some.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>An object containing the return value of the invoked method.</dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">ArgumentNullException</td><td>If either <em>self</em>  or <em>name</em>  is a <code>null</code> reference.</td></tr>
    <tr><td class="paramname">ArgumentException</td><td>If <em>name</em>  is string.Empty string.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd>MethodInfo.Invoke(object, object[])</dd></dl>

</div>
</div>
<a class="anchor" id="a5baf407f2090ba451dc1bda0f1e561e5"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static T Catharsis.Commons.ObjectExtensions.Properties&lt; T &gt; </td>
          <td>(</td>
          <td class="paramtype">this T&#160;</td>
          <td class="paramname"><em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">IDictionary&lt; string, object &gt;&#160;</td>
          <td class="paramname"><em>properties</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Sets values of several properties on specified target object.</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">T</td><td>Type of target object.</td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>Target object whose properties are to be changed.</td></tr>
    <tr><td class="paramname">properties</td><td>Set of properties (as a collection of name - value pairs) to be set on <em>self</em> .</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Back reference to the current target object.</dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">ArgumentNullException</td><td>If either <em>self</em>  or <em>properties</em>  is a <code>null</code> reference.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd>Property(object, string), Property{T}(T, string, object), Properties{T}(T, object)</dd></dl>

</div>
</div>
<a class="anchor" id="a0737c4ea29a488b6c0a9e629110876ed"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static T Catharsis.Commons.ObjectExtensions.Properties&lt; T &gt; </td>
          <td>(</td>
          <td class="paramtype">this T&#160;</td>
          <td class="paramname"><em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">object&#160;</td>
          <td class="paramname"><em>properties</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Sets values of several properties on specified target object.</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">T</td><td>Type of target object.</td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>Target object whose properties are to be changed.</td></tr>
    <tr><td class="paramname">properties</td><td>Object whose public properties are to be used for setting matched ones on target object.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Back reference to the current target object.</dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">ArgumentNullException</td><td>If either <em>self</em>  or <em>properties</em>  is a <code>null</code> reference.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd>Property(object, string), Property{T}(T, string, object), Properties{T}(T, IDictionary{string, object})</dd></dl>

</div>
</div>
<a class="anchor" id="af4a4ff84e1d58d21bbc2caa2517bc4bf"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static IDictionary&lt;string, object&gt; Catharsis.Commons.ObjectExtensions.PropertiesMap </td>
          <td>(</td>
          <td class="paramtype">this object&#160;</td>
          <td class="paramname"><em>self</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Creates and returns a dictionary from the values of public properties of target object.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>Target object whose properties values are returned.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Dictionary of name - value pairs for public properties of <em>self</em> .</dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">ArgumentNullException</td><td>If <em>self</em>  is a <code>null</code> reference.</td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a68d696db7de7dd18f57d94c0a6bb7aaa"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static object Catharsis.Commons.ObjectExtensions.Property </td>
          <td>(</td>
          <td class="paramtype">this object&#160;</td>
          <td class="paramname"><em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">string&#160;</td>
          <td class="paramname"><em>name</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Returns the value of given property for specified target object.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>Target object, whose property's value is to be returned.</td></tr>
    <tr><td class="paramname">name</td><td>Name of property to inspect.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Value of property <em>name</em>  for <em>self</em>  instance, or a <code>null</code> reference in case this property does not exists for <em>self</em> 's type.</dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">ArgumentNullException</td><td>If either <em>self</em>  or <em>name</em>  is a <code>null</code> reference.</td></tr>
    <tr><td class="paramname">ArgumentException</td><td>If <em>name</em>  is string.Empty string.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd>Property{T}(T, string, object), Properties{T}(T, IDictionary{string, object}), Properties{T}(T, object)</dd></dl>

</div>
</div>
<a class="anchor" id="a22cd0af53a4f615f074bba54c7cd352f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static T <a class="el" href="class_catharsis_1_1_commons_1_1_object_extensions.html#a68d696db7de7dd18f57d94c0a6bb7aaa">Catharsis.Commons.ObjectExtensions.Property</a>&lt; T &gt; </td>
          <td>(</td>
          <td class="paramtype">this T&#160;</td>
          <td class="paramname"><em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">string&#160;</td>
          <td class="paramname"><em>property</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">object&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Sets the value of given property on specified target object.</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">T</td><td>Type of target object.</td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>Target object whose property is to be changed.</td></tr>
    <tr><td class="paramname">property</td><td>Name of property to change.</td></tr>
    <tr><td class="paramname">value</td><td>New value of object's property.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Back reference to the current target object.</dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">ArgumentNullException</td><td>If either <em>self</em>  or <em>property</em>  is a <code>null</code> reference.</td></tr>
    <tr><td class="paramname">ArgumentException</td><td>If <em>property</em>  is string.Empty string.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd>Property(object, string), Properties{T}(T, IDictionary{string, object}), Properties{T}(T, object)</dd></dl>

</div>
</div>
<a class="anchor" id="ad225f94387874cd75ed37d6b3351b814"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static T Catharsis.Commons.ObjectExtensions.To&lt; T &gt; </td>
          <td>(</td>
          <td class="paramtype">this object&#160;</td>
          <td class="paramname"><em>self</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Tries to convert given object to specified type and throws exception on failure.</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">T</td><td>Type to convert object to.</td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>Object to convert.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Object, converted to the specified type.</dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">InvalidCastException</td><td>If conversion to specified type cannot be performed.</td></tr>
  </table>
  </dd>
</dl>
<p>If specified object instance is a <code>null</code> reference, a <code>null</code> reference will be returned as a result.</p>
<dl class="section see"><dt>See also</dt><dd>As{T}</dd></dl>

</div>
</div>
<a class="anchor" id="ae08d7a673e8c8fb445329fb144b936e4"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static string Catharsis.Commons.ObjectExtensions.ToString </td>
          <td>(</td>
          <td class="paramtype">this object&#160;</td>
          <td class="paramname"><em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">IEnumerable&lt; string &gt;&#160;</td>
          <td class="paramname"><em>properties</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Returns a generic string representation of object, using values of specified properties.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>Object to be converted to string representation.</td></tr>
    <tr><td class="paramname">properties</td><td>Set of properties, whose values are used for string representation of <em>self</em> .</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>String representation of <em>self</em> . Property name is separated from value by colon character, name-value pairs are separated by comma and immediately following space characters, and all content is placed in square brackets afterwards.</dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">ArgumentNullException</td><td>If <em>self</em>  is a <code>null</code> reference.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd>object.ToString(), ToString{T}(T, Expression{Func{T, object}}[])</dd></dl>

</div>
</div>
<a class="anchor" id="af84a8586d22340e296f0bf2a8809434d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static string <a class="el" href="class_catharsis_1_1_commons_1_1_object_extensions.html#ae08d7a673e8c8fb445329fb144b936e4">Catharsis.Commons.ObjectExtensions.ToString</a>&lt; T &gt; </td>
          <td>(</td>
          <td class="paramtype">this T&#160;</td>
          <td class="paramname"><em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">params Expression&lt; Func&lt; T, object &gt;&gt;[]&#160;</td>
          <td class="paramname"><em>properties</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Returns a generic string representation of object, using values of specified properties in a form of lambda expressions.</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">T</td><td>Type of target object.</td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>Object to be converted to string representation.</td></tr>
    <tr><td class="paramname">properties</td><td>Set of properties, whose values are used for string representation of <em>self</em> . Each property is represented as a lambda expression.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>String representation of <em>self</em> . Property name is separated from value by colon character, name-value pairs are separated by comma and immediately following space characters, and all content is placed in square brackets afterwards.</dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">ArgumentNullException</td><td>If <em>self</em> If <em>self</em>  is a <code>null</code> reference.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd>object.ToString(), ToString(object, IEnumerable{string})</dd></dl>

</div>
</div>
<a class="anchor" id="a2669cd77169b3eca209a4402651b6701"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static string Catharsis.Commons.ObjectExtensions.ToStringInvariant </td>
          <td>(</td>
          <td class="paramtype">this object&#160;</td>
          <td class="paramname"><em>self</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Returns a string representation of object, formatted according to CultureInfo.InvariantCulture.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>Object to be converted to string representation.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>String representation of <dl class="section see"><dt>See also</dt><dd>self</dd></dl>
.</dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">ArgumentNullException</td><td>If <em>self</em>  is a <code>null</code> reference.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd>object.ToString()</dd></dl>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="namespace_catharsis.html">Catharsis</a></li><li class="navelem"><a class="el" href="namespace_catharsis_1_1_commons.html">Commons</a></li><li class="navelem"><a class="el" href="class_catharsis_1_1_commons_1_1_object_extensions.html">ObjectExtensions</a></li>
    <li class="footer">Generated on Wed Aug 6 2014 00:10:37 for Catharsis.NET.Commons by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
  </ul>
</div>
</body>
</html>
